LINQ to SQL হল একটি টেকনোলজি যা .NET Framework এর অংশ এবং এটি Microsoft SQL Server এর ডেটাবেসের সাথে কাজ করার জন্য ডিজাইন করা হয়েছে। LINQ to SQL ব্যবহার করে আপনি SQL ডেটাবেসের টেবিলগুলোর সাথে C# অথবা VB.NET কোড ব্যবহার করে সরাসরি ইন্টারঅ্যাক্ট করতে পারেন, এবং SQL Query এর পরিবর্তে LINQ কুয়েরি ব্যবহার করে ডেটা রিটার্ন বা ম্যানিপুলেট করতে পারেন। এটি Object-Relational Mapping (ORM) টুল হিসেবে কাজ করে, যা ডেটাবেসের টেবিলগুলিকে ক্লাসে রূপান্তরিত করে।
Object-Relational Mapping (ORM): LINQ to SQL ডেটাবেসের টেবিলগুলোকে C# ক্লাস (POCO - Plain Old CLR Object) এ রূপান্তর করে এবং এই ক্লাসগুলির মাধ্যমে ডেটাবেসে কার্যক্রম পরিচালনা করতে দেয়।
LINQ কুয়েরি: SQL কুয়েরির পরিবর্তে আপনি LINQ কুয়েরি ব্যবহার করতে পারেন যা পাঠযোগ্য এবং টাইপ-সেফ (type-safe) হয়।
CRUD অপারেশন: LINQ to SQL Create, Read, Update, এবং Delete (CRUD) অপারেশনগুলো খুব সহজে সম্পাদন করতে সহায়ক হয়।
ডেটাবেস সম্পর্ক: আপনি One-to-Many, Many-to-Many, এবং One-to-One সম্পর্কগুলো সহজে মডেল করতে পারবেন।
DataContext: DataContext ক্লাস LINQ to SQL এর প্রধান উপাদান, যা ডেটাবেসের সাথে যোগাযোগ করে এবং CRUD অপারেশন সম্পাদন করে।
LINQ to SQL ব্যবহারের জন্য কিছু পূর্ব প্রস্তুতি নিতে হয়, যেমন Visual Studio-তে একটি নতুন প্রজেক্ট তৈরি করা এবং LINQ to SQL ডেটাবেস টুলস ব্যবহার করা। নীচে LINQ to SQL সেটআপ করার প্রক্রিয়া বিস্তারিতভাবে দেওয়া হল।
Visual Studio খুলুন এবং New Project নির্বাচন করুন। এখানে Console Application অথবা Web Application তৈরি করা যাবে (এখানে কনসোল অ্যাপের উদাহরণ দেখানো হয়েছে)। প্রজেক্ট তৈরি করার পর, Solution Explorer থেকে আপনার প্রজেক্টে রাইট ক্লিক করুন এবং Add > New Item নির্বাচন করুন।
Add New Item ডায়ালগে, LINQ to SQL Classes নির্বাচন করুন। এটি একটি .dbml ফাইল তৈরি করবে।
LINQ to SQL Classes ফাইলটি তৈরি হলে, Server Explorer থেকে আপনার SQL ডেটাবেসে কানেক্ট করুন। ডেটাবেস কানেক্ট করার পর, ডেটাবেস টেবিলগুলিকে ড্র্যাগ করে LINQ to SQL ফাইলের মধ্যে টেনে আনুন। এতে ওই টেবিলগুলো C# ক্লাস হিসেবে রূপান্তরিত হয়ে যাবে।
LINQ to SQL ক্লাসে DataContext ব্যবহৃত হয় যা ডেটাবেসের টেবিলের সাথে সম্পর্ক স্থাপন করে। DataContext ক্লাসে সাধারণত টেবিলের জন্য একটি Table প্রপার্টি থাকে, যা টেবিলের ডেটাকে ক্লাসে ম্যাপ করে।
public class MyDataContext : DataContext
{
public Table<Student> Students;
public Table<Course> Courses;
public MyDataContext(string connectionString) : base(connectionString)
{
}
}
এখানে Student
এবং Course
হলো ডেটাবেসের টেবিলগুলির সাথে সম্পর্কিত ক্লাস, এবং MyDataContext
ক্লাস ডেটাবেসে যোগাযোগ করতে ব্যবহৃত হয়।
LINQ to SQL ব্যবহারের জন্য, প্রথমে DataContext তৈরি করতে হবে এবং তারপর টেবিলের ওপর LINQ কুয়েরি ব্যবহার করতে হবে। উদাহরণস্বরূপ, আমরা যদি Students টেবিল থেকে ডেটা পড়তে চাই:
using (var db = new MyDataContext("your_connection_string"))
{
var query = from student in db.Students
where student.Age > 20
select student;
foreach (var student in query)
{
Console.WriteLine($"Name: {student.Name}, Age: {student.Age}");
}
}
এখানে MyDataContext
একটি ইনস্ট্যান্স তৈরি করা হয়েছে এবং Students
টেবিলের ওপর LINQ Query ব্যবহার করা হয়েছে।
LINQ to SQL শুধু Read (Select) অপারেশন নয়, Update, Insert, এবং Delete অপারেশনও সমর্থন করে। উদাহরণস্বরূপ:
Insert (নতুন ডেটা যোগ করা):
using (var db = new MyDataContext("your_connection_string"))
{
var newStudent = new Student { Name = "Alice", Age = 22 };
db.Students.InsertOnSubmit(newStudent);
db.SubmitChanges(); // ডেটাবেসে পরিবর্তনগুলি সংরক্ষণ করা
}
Update (ডেটা আপডেট করা):
using (var db = new MyDataContext("your_connection_string"))
{
var studentToUpdate = db.Students.FirstOrDefault(s => s.Name == "John");
if (studentToUpdate != null)
{
studentToUpdate.Age = 25;
db.SubmitChanges();
}
}
Delete (ডেটা মুছে ফেলা):
using (var db = new MyDataContext("your_connection_string"))
{
var studentToDelete = db.Students.FirstOrDefault(s => s.Name == "Alice");
if (studentToDelete != null)
{
db.Students.DeleteOnSubmit(studentToDelete);
db.SubmitChanges();
}
}
এখানে Insert, Update, এবং Delete অপারেশনগুলো LINQ to SQL এর মাধ্যমে খুব সহজে সম্পাদন করা হচ্ছে। SubmitChanges()
মেথডটি ডেটাবেসে পরিবর্তনগুলো সংরক্ষণ করার জন্য ব্যবহৃত হয়।
common.read_more